diff options
| author | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-10-13 00:22:54 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-10-13 00:22:54 +0000 |
| commit | 89274bffa596ffdfc4275fb8d11cdb02ff9a2d02 (patch) | |
| tree | 8597ef56c39ac4913eacdb0fc663b5fe80de127b /app/[lng]/evcp/(evcp) | |
| parent | 00092099271ff743ac195511c03994e80f91a2e9 (diff) | |
(최겸) 기술영업 import 수정 2
Diffstat (limited to 'app/[lng]/evcp/(evcp)')
| -rw-r--r-- | app/[lng]/evcp/(evcp)/(sales)/tech-contact-possible-items/page.tsx | 71 |
1 files changed, 42 insertions, 29 deletions
diff --git a/app/[lng]/evcp/(evcp)/(sales)/tech-contact-possible-items/page.tsx b/app/[lng]/evcp/(evcp)/(sales)/tech-contact-possible-items/page.tsx index 5bc36790..cf35530d 100644 --- a/app/[lng]/evcp/(evcp)/(sales)/tech-contact-possible-items/page.tsx +++ b/app/[lng]/evcp/(evcp)/(sales)/tech-contact-possible-items/page.tsx @@ -1,11 +1,11 @@ import { Suspense } from "react"
-import { SearchParams } from "@/types/table"
import { Shell } from "@/components/shell"
-import { ContactPossibleItemsTable } from "@/lib/contact-possible-items/table/contact-possible-items-table"
+import { DataTableSkeleton } from "@/components/data-table/data-table-skeleton"
import { getContactPossibleItems } from "@/lib/contact-possible-items/service"
import { searchParamsCache } from "@/lib/contact-possible-items/validations"
-import { DataTableSkeleton } from "@/components/data-table/data-table-skeleton"
-
+import { ContactPossibleItemsTable } from "@/lib/contact-possible-items/table/contact-possible-items-table"
+import { getValidFilters } from "@/lib/data-table"
+import { type SearchParams } from "@/types/table"
interface ContactPossibleItemsPageProps {
searchParams: Promise<SearchParams>
@@ -14,43 +14,56 @@ interface ContactPossibleItemsPageProps { export default async function ContactPossibleItemsPage({
searchParams,
}: ContactPossibleItemsPageProps) {
+ // ✅ searchParams 파싱
const resolvedSearchParams = await searchParams
const search = searchParamsCache.parse(resolvedSearchParams)
- const contactPossibleItemsPromise = getContactPossibleItems(search)
+ console.log("Parsed search params:", search)
+
+ const validFilters = getValidFilters(search.filters)
+
+ // ✅ 모든 데이터를 병렬로 로드
+ const promises = Promise.all([
+ getContactPossibleItems({
+ ...search,
+ filters: validFilters,
+ }),
+ ])
return (
- <Shell className="gap-2">
+ <Shell className="gap-4">
+ {/* ═══════════════════════════════════════════════════════════════ */}
+ {/* 페이지 헤더 */}
+ {/* ═══════════════════════════════════════════════════════════════ */}
<div className="flex items-center justify-between space-y-2">
<div className="flex items-center justify-between space-y-2">
<div>
- <h2 className="text-2xl font-bold tracking-tight">
- 담당자별 자재 관리
- </h2>
- {/* <p className="text-muted-foreground">
- 기술영업 담당자별 자재를 관리합니다.
- </p> */}
+ <h2 className="text-2xl font-bold tracking-tight">
+ 담당자별 자재 관리
+ </h2>
+ <p className="text-muted-foreground">
+ 기술영업 담당자별 자재를 관리합니다.
+ </p>
+ </div>
</div>
</div>
- </div>
-
- <Suspense
- fallback={
- <DataTableSkeleton
- columnCount={12}
- searchableColumnCount={2}
- filterableColumnCount={3}
- cellWidths={["10rem", "10rem", "12rem", "8rem", "8rem"]}
- shrinkZero
- />
- }
- >
- <ContactPossibleItemsTable
- contactPossibleItemsPromise={contactPossibleItemsPromise}
+ {/* ═══════════════════════════════════════════════════════════════ */}
+ {/* 메인 테이블 */}
+ {/* ═══════════════════════════════════════════════════════════════ */}
+ <Suspense
+ fallback={
+ <DataTableSkeleton
+ columnCount={12}
+ searchableColumnCount={2}
+ filterableColumnCount={3}
+ cellWidths={["10rem", "10rem", "12rem", "8rem", "8rem"]}
+ shrinkZero
/>
- </Suspense>
-
+ }
+ >
+ <ContactPossibleItemsTable promises={promises} />
+ </Suspense>
</Shell>
)
}
\ No newline at end of file |
